package cn.wolfcode.mapper;

import cn.wolfcode.domain.ConsumptionItem;
import cn.wolfcode.qo.ConsumptionReportQueryObject;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ConsumptionReportMapper {


    List<Map<String, Object>> selectForList(ConsumptionReportQueryObject qo);


    /**
     * 传入多个参数时: 使用@Param("key1") 明确指定
     * map{
     *     key1 : xxx
     *     key2:xx
     * }
     * 传一个参数值时
     * map{
     *     groupType : xxx
     *     key2:xx
     * }
     *
     * 如果sql语句中取值使用  # , 那么mapper方法多参数使用 @Param表示, mybatis将所有数据封装成map集合
     *     那么mapper方法如果是单个参数,明确将传入参数作为 占位符的参数
     *
     * 如果sql语句中取值使用  $ , 那么mapper方法多参数使用 @Param表示, mybatis将所有数据封装成map集合
     *    那么mapper方法如果是单个参数, mybatis会将这个数据当成对象看待, 那么需要使用
     *       @Param("groupType") 将数据转换map对象再使用.
     *
     */
    List<Map<String, Object>> selectForChart(@Param("groupType") String groupType);
}